﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aspose.Cells;
using Aspose.Cells.Drawing;
using System.IO;

namespace Quality
{
    class ExportExcel
    {
        public static bool ExportExcelWithAspose(System.Data.DataTable dt, string path)
          {
              bool succeed = false;
              if (dt != null)
              {
                  try
                  {
                      Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();
                      Aspose.Cells.Worksheet cellSheet = workbook.Worksheets[0];
                      //为单元格添加样式    
                      Aspose.Cells.Style style = workbook.Styles[workbook.Styles.Add()];
                      //设置居中
                      style.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;
                      //设置背景颜色
                      style.ForegroundColor = System.Drawing.Color.FromArgb(153, 204, 0);
                      style.Pattern = BackgroundType.Solid;
                      style.Font.IsBold = true;
                      int rowIndex = 0;
                      int colIndex = 0;
                      int colCount = dt.Columns.Count;
                      int rowCount = dt.Rows.Count;
                      //列名的处理
                      for (int i = 0; i < colCount; i++)
                      {
                          cellSheet.Cells[rowIndex, colIndex].PutValue(dt.Columns[i].ColumnName);
                        
                          colIndex++;
                      }
                      rowIndex++;
                      for (int i = 0; i < rowCount; i++)
                      {
                          colIndex = 0;
                          for (int j = 0; j < colCount; j++)
                          {
                              cellSheet.Cells[rowIndex, colIndex].PutValue(dt.Rows[i][j].ToString());
                              colIndex++;
                          }
                          rowIndex++;
                      }
                      cellSheet.AutoFitColumns();
                      path = Path.GetFullPath(path);
                      workbook.Save(path);
                      succeed = true;
                  }
                  catch (Exception ex)
                  {
                      succeed = false;
                  }
              }
              return succeed;

         }
    }
}
